In multi-program data processing systems, such as the IBM Systems/360 or 370, it is not unusual to have control pass in an oscillatory ("ping-pong") mode from an interrupting program to an interrupted program and immediately back to the same interrupting program (due to existence of pending requests for interruption in the same class as the interruption attended to by the interrupting program). This gives rise to "wasted motion" in system operation; especially in respect to operations associated with the exchange of status (and environmental) information.
Systems such as IBM Systems/360 and 370 have instructions for examining and conditionally clearing a specific interruption request (e.g. instructions such as TEST I/O and CLEAR I/O). However each such instruction is used only relative to one specific interruption request source associated with one specific class (I/O interruptions). In a system capable of serving many (e.g. hundreds of) relatively asynchronous I/O devices, and thereby subject to having many I/O interruption requests pending concurrently, it would be extremely inefficient and virtually unfeasible to use such "source-specific" instructions to attend to all (or a moderately large subset of all) pending I/O interruption requests and obviously impossible to use such instructions to attend to interruption requests not related to I/O functions. However we have found that there is at present a need which appears not to have been appreciated or recognized by others, although nonetheless important for effective operation, for having a capability to efficiently link the handling of non-specific interruptions in a given class (or subset of a class) on a program-controllable basis without having to displace environmental and/or program state information. This need is satisfied by the present invention.